package com.quectel.core.module.alarm.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author caolu
 * @email louis.cao@quectel.com
 * @date 2019-05-31 12:25:26
 */
@Data
public class AlarmRuleDto implements Serializable {

    /**
     * ID
     */
    private Long id;
    /**
     * 告警规则编码
     */
    @NotEmpty
    @Length(min = 1, max = 50)
    private String code;
    /**
     * 规则名称
     */
    @NotEmpty
    @Length(min = 1, max = 80)
    private String name;
    /**
     * 所属设备种类
     */
    @NotNull
    private Long deviceCategoryId;
    /**
     * 所属设备种类名称
     */
    private String deviceCategoryName;
    /**
     * 所属设备类型
     */
    @NotNull
    private Long deviceTypeId;
    /**
     * 所属设备类型名称
     */
    private String deviceTypeName;
    /**
     * 1支持复位2不支持复位
     */
    @NotNull
    private Byte supportReset;
    /**
     * 规则等级0重要1不重要
     */
    @NotNull
    private Integer level;
    /**
     * 状态1开启0关闭
     */
    @NotNull
    private Integer status;
    /**
     * 备注
     */
    private String remark;
    /**
     * 创建人ID
     */
    private String creator;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改人ID
     */
    private String editor;
    /**
     * 修改时间
     */
    private Date editTime;
    /**
     * 扩展字段
     */
    private String future;

    private List<AlarmRuleConditionDto> alarmConditionList;


}
